<html>
<head><meta charset="utf-8"><title>polonius · t-compiler/wg-nll · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/index.html">t-compiler/wg-nll</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html">polonius</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="134624768"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134624768" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134624768">(Sep 25 2018 at 20:09)</a>:</h4>
<p><span class="user-mention" data-user-id="116118">@Matthew Jasper</span> you saw my comments on <a href="https://github.com/rust-lang/rust/pull/54468#pullrequestreview-158632061" target="_blank" title="https://github.com/rust-lang/rust/pull/54468#pullrequestreview-158632061">your PR</a>?</p>



<a name="134624890"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134624890" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134624890">(Sep 25 2018 at 20:10)</a>:</h4>
<p>Yes, I'm trying to track down something so for your first comment</p>



<a name="134770172"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134770172" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134770172">(Sep 27 2018 at 20:02)</a>:</h4>
<p>I was wondering whether polonius needed the <code>outlives</code> facts where regions outlive themselves (one of the contributing factors to regions being computed as <code>subset</code>s of themselves) ? (there aren't many of these regions outliving themselves, for example: 456 out of the 534 327 <code>outlives</code> facts in <code>clap-rs</code>)</p>



<a name="134771628"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134771628" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134771628">(Sep 27 2018 at 20:28)</a>:</h4>
<p>I don't think so</p>



<a name="134771667"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134771667" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134771667">(Sep 27 2018 at 20:29)</a>:</h4>
<p>they probable have a need in rustc though</p>



<a name="134771671"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134771671" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134771671">(Sep 27 2018 at 20:29)</a>:</h4>
<p>no</p>



<a name="134771673"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134771673" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134771673">(Sep 27 2018 at 20:29)</a>:</h4>
<p>they just get stripped out</p>



<a name="134771685"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134771685" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134771685">(Sep 27 2018 at 20:29)</a>:</h4>
<p>oh really</p>



<a name="134771738"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134771738" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134771738">(Sep 27 2018 at 20:30)</a>:</h4>
<p>interesting, thank you (I think I remember it from back in May when I looked at this)</p>



<a name="134773104"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134773104" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134773104">(Sep 27 2018 at 20:52)</a>:</h4>
<p>btw did the recent PR switch all <code>invalidates</code> facts to mid points ? (IIRC most of them were emitted on mid-points, but there were also some on start-points) ? (if so, maybe the PR allowing the parser/program to emit effects on start-points might not needed anymore?)</p>



<a name="134773212"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134773212" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134773212">(Sep 27 2018 at 20:54)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/54468" target="_blank" title="https://github.com/rust-lang/rust/issues/54468">#54468</a> moves them to the start</p>



<a name="134773491"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134773491" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134773491">(Sep 27 2018 at 21:00)</a>:</h4>
<p>ok, I'm gonna start bringing polonius back in cache now :)</p>



<a name="134773500"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134773500" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134773500">(Sep 27 2018 at 21:00)</a>:</h4>
<p>seems like we can merge <a href="https://github.com/rust-lang-nursery/polonius/pull/70/" target="_blank" title="https://github.com/rust-lang-nursery/polonius/pull/70/">https://github.com/rust-lang-nursery/polonius/pull/70/</a>, to start (cc <span class="user-mention" data-user-id="116113">@lqd</span>) =)</p>



<a name="134773522"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134773522" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134773522">(Sep 27 2018 at 21:01)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> didn't we have some known bug that you minimized...?</p>



<a name="134773580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134773580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134773580">(Sep 27 2018 at 21:02)</a>:</h4>
<p>I guess that <a href="https://github.com/rust-lang-nursery/polonius/issues/44" target="_blank" title="https://github.com/rust-lang-nursery/polonius/issues/44">https://github.com/rust-lang-nursery/polonius/issues/44</a> is basically done</p>



<a name="134773604"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134773604" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134773604">(Sep 27 2018 at 21:02)</a>:</h4>
<p><span class="user-mention" data-user-id="116118">@Matthew Jasper</span> oh sorry I completely misremembered that from your PR, and thought it was literally the opposite</p>



<a name="134773647"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134773647" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134773647">(Sep 27 2018 at 21:03)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> the 3 tests in <a href="http://test.rs" target="_blank" title="http://test.rs">test.rs</a> are the known bug datafrogopt indeed, they are marked as <code>#[should_panic]</code> until we do fix it :)</p>



<a name="134773708"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134773708" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134773708">(Sep 27 2018 at 21:04)</a>:</h4>
<p>I would like to fix correctly the previous PR hack, and I feel it's going to take a bit of API in datafrog, something like filter_map</p>



<a name="134773725"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134773725" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134773725">(Sep 27 2018 at 21:05)</a>:</h4>
<p>yeah...</p>



<a name="134773777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134773777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134773777">(Sep 27 2018 at 21:06)</a>:</h4>
<p>(polonius <a href="https://github.com/rust-lang/rust/issues/70" target="_blank" title="https://github.com/rust-lang/rust/issues/70">#70</a> is indeed just switching these tests from being manual facts to using the parser — tests were one of  its original  purposes anyways; but they're slightly less minimized this way)</p>



<a name="134773816"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134773816" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134773816">(Sep 27 2018 at 21:07)</a>:</h4>
<p>btw the biggest win we'd have is from starting using the "treefrog leapjoin" work in <a href="https://github.com/rust-lang-nursery/datafrog/pull/11" target="_blank" title="https://github.com/rust-lang-nursery/datafrog/pull/11">https://github.com/rust-lang-nursery/datafrog/pull/11</a></p>



<a name="134773835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134773835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134773835">(Sep 27 2018 at 21:07)</a>:</h4>
<p>oh man</p>



<a name="134773874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134773874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134773874">(Sep 27 2018 at 21:08)</a>:</h4>
<p>I didn't even realize datafrog had pending PRs :)</p>



<a name="134773882"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134773882" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134773882">(Sep 27 2018 at 21:08)</a>:</h4>
<p>/me grumbles about GH's workflow</p>



<a name="134773901"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134773901" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134773901">(Sep 27 2018 at 21:08)</a>:</h4>
<p>frank has merged some already</p>



<a name="134773916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134773916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134773916">(Sep 27 2018 at 21:09)</a>:</h4>
<p>(and I want to close/redo the specialization one)</p>



<a name="134773997"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134773997" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134773997">(Sep 27 2018 at 21:10)</a>:</h4>
<p>I was just skimming</p>



<a name="134774000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134774000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134774000">(Sep 27 2018 at 21:10)</a>:</h4>
<p>I am <span class="emoji emoji-1f44d" title="+1">:+1:</span> on sticking to stable if at all possible</p>



<a name="134774006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134774006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134774006">(Sep 27 2018 at 21:10)</a>:</h4>
<p>I'm trying to comment and cleanup the cfg compression work rn, I'm sure there will be lots of things to improve once I open the PR</p>



<a name="134774085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134774085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134774085">(Sep 27 2018 at 21:12)</a>:</h4>
<p>yeah sticking to stable will just be using the existing <span class="emoji emoji-1f438" title="frog">:frog:</span> fns, not hard at all</p>



<a name="134774105"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134774105" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134774105">(Sep 27 2018 at 21:12)</a>:</h4>
<p>I'm sure datafrog could use a bit of API polish as well, sticking to existing conventions, function names, etc</p>



<a name="134774181"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134774181" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134774181">(Sep 27 2018 at 21:14)</a>:</h4>
<p>(and I feel there's a case with leapfrog where I expected it to work and it didn't, probable no big deal or me being stupid, but would help remove some temporary indexes/variables, I'll minimize and open an issue)</p>



<a name="134774497"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134774497" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134774497">(Sep 27 2018 at 21:20)</a>:</h4>
<p>one thing that might be nice:</p>



<a name="134774499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134774499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134774499">(Sep 27 2018 at 21:20)</a>:</h4>
<p>settling on our terminology a bit</p>



<a name="134774506"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134774506" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134774506">(Sep 27 2018 at 21:20)</a>:</h4>
<p>e.g., I'm coming to prefer "loans" over "Borrows", but we're awfully inconsistent</p>



<a name="134774740"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134774740" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134774740">(Sep 27 2018 at 21:25)</a>:</h4>
<p>from the early beginning I've had in my todo list: switch all instances of borrows/B to Loans/L :)</p>



<a name="134774901"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134774901" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134774901">(Sep 27 2018 at 21:28)</a>:</h4>
<p>hehe</p>



<a name="134774907"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134774907" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134774907">(Sep 27 2018 at 21:28)</a>:</h4>
<p>I'd like to match up the rustc code too</p>



<a name="134774914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134774914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134774914">(Sep 27 2018 at 21:28)</a>:</h4>
<p>but I guess we could start by picking the vocabulary we want in polonius</p>



<a name="134774917"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134774917" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134774917">(Sep 27 2018 at 21:28)</a>:</h4>
<p>there are some other examples, e.g., I think polonius talks about <code>outlives</code>...</p>



<a name="134774920"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134774920" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134774920">(Sep 27 2018 at 21:28)</a>:</h4>
<p>though that is still a handy term</p>



<a name="134774948"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134774948" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134774948">(Sep 27 2018 at 21:29)</a>:</h4>
<p>something like "base_subset" feels better tho</p>



<a name="134775089"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134775089" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134775089">(Sep 27 2018 at 21:32)</a>:</h4>
<p>and base_subset was how they were introduced in the blog post IIRC</p>



<a name="134775265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134775265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134775265">(Sep 27 2018 at 21:36)</a>:</h4>
<p>yeah I think I made an effort in the blog post to cleanup the terminology</p>



<a name="134775266"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134775266" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134775266">(Sep 27 2018 at 21:36)</a>:</h4>
<p>but left the code alone :P</p>



<a name="134777919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/134777919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#134777919">(Sep 27 2018 at 22:32)</a>:</h4>
<p><span class="emoji emoji-1f389" title="tada">:tada:</span> <a href="https://github.com/rust-lang/rust/issues/54468" target="_blank" title="https://github.com/rust-lang/rust/issues/54468">#54468</a> landed</p>



<a name="135031977"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/135031977" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#135031977">(Oct 02 2018 at 12:28)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> quick question about Polonius: if 1) one had to mutate the input facts, and then 2) change the computation result based on step 1, where would you expect the code for step 2 to be: a) in the computation themselves (but that would require to change the APIs to take this new input) or b) in the "result" struct itself ? (option A is easy but there is no Context struct or whatever making adding inputs a bit less clean atm;, option B is a bit harder to do efficiently because needing mutation of a "complex" data structure while iterating it)</p>



<a name="135032112"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/135032112" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#135032112">(Oct 02 2018 at 12:30)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> I don't have enough info in my mental cache to answer that question quickly.</p>



<a name="135032185"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/135032185" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#135032185">(Oct 02 2018 at 12:31)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> but maybe I can fake it. Can you provide more info on what kind of mutation of the input facts you are doing?</p>



<a name="135032191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/135032191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#135032191">(Oct 02 2018 at 12:31)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span>  no problem, I'll just do my best and then we can iterate on the PR</p>



<a name="135032218"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/135032218" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#135032218">(Oct 02 2018 at 12:31)</a>:</h4>
<p>My intuition is that if you want a Context struct and one is missing, then maybe we should add it</p>



<a name="135032223"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/135032223" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#135032223">(Oct 02 2018 at 12:31)</a>:</h4>
<p>I'm compressing the facts, to do the analysis over less data, and then "decompressing" the live borrows</p>



<a name="135032233"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/135032233" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#135032233">(Oct 02 2018 at 12:31)</a>:</h4>
<p>because chances are we'll end up adding one eventually anyway</p>



<a name="135032294"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/135032294" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#135032294">(Oct 02 2018 at 12:32)</a>:</h4>
<p>Hmm. Interesting.</p>



<a name="135032343"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/135032343" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#135032343">(Oct 02 2018 at 12:32)</a>:</h4>
<p>we have a kind of input context (all facts), but then each computation fills results differently, while compression is a crosscutting concern</p>



<a name="135032487"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/135032487" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#135032487">(Oct 02 2018 at 12:34)</a>:</h4>
<p>so the whole thing is a mix of 1) adding input data, 2) generating output data, 3) no wanting to duplicate either compression or decompression code in each variant, 4) wanting for now it to be a bit external and toggleable for testing and benchmarking purposes, etc</p>



<a name="135032531"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/135032531" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#135032531">(Oct 02 2018 at 12:35)</a>:</h4>
<p>it would probably be easier to iterate on the PR rather than everyone having to use their mind's eye to imagine the different options :)</p>



<a name="135216339"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/135216339" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#135216339">(Oct 04 2018 at 21:01)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> btw how would you expect compression to be integrated into Polonius and rustc, toggled, and tested ? new variants ? modifying the existing variants fn signature (to pass possible compression data) ?</p>



<a name="135242380"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/135242380" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#135242380">(Oct 05 2018 at 08:47)</a>:</h4>
<p>(right now I'm locally making a temporary (it's not in the PR) variant in order to be able to test from rustc)</p>



<a name="135249741"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/135249741" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#135249741">(Oct 05 2018 at 11:46)</a>:</h4>
<p>(and this temporary compressed-variant seemingly behaves like the default opt variant in rustc tests (both have the same 37 <a href="https://gist.github.com/lqd/a87e496c549ce51931901d6d7ad97dfe" target="_blank" title="https://gist.github.com/lqd/a87e496c549ce51931901d6d7ad97dfe">test failures</a>, and which I believe are the failures <span class="user-mention" data-user-id="116118">@Matthew Jasper</span> saw in their PR, some of them due to <code>ignore-compare-mode-nll</code> and other to differences/lack of diagnostics), and also like the naive variant, if I modify it to compute errors instead of just live loans)</p>



<a name="135254688"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/135254688" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#135254688">(Oct 05 2018 at 13:28)</a>:</h4>
<p>(but to remove the biggish joins to actually compute errors instead of live loans, we'll need the treefrog PR merged in <span class="emoji emoji-1f438" title="frog">:frog:</span> :)</p>



<a name="135261529"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/135261529" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#135261529">(Oct 05 2018 at 15:24)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> I don't know, I have to review your PR, I have mixed feelings about doing too much pre-processing etc when it comes to polonius.</p>



<a name="135261683"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/135261683" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#135261683">(Oct 05 2018 at 15:26)</a>:</h4>
<p>in a sense it is getting closer to a representation focusing on liveness, IIRC like arielb mentioned a few times before</p>



<a name="150841395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/150841395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#150841395">(Dec 04 2018 at 11:51)</a>:</h4>
<p>BTW, in my spare time I've been working on polonius. </p>
<p>I fixed a bug in how we handle two-phase-borrows and fact generation and am currently going through the missing test cases. </p>
<p>Kind of tight for time so no time for a bigger update, just though I'd  leave a note.</p>



<a name="150844455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/150844455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#150844455">(Dec 04 2018 at 13:00)</a>:</h4>
<p>It seems like, apart from the <a href="#narrow/stream/122657-wg-nll/topic/various.20region.20bugs" title="#narrow/stream/122657-wg-nll/topic/various.20region.20bugs">region bugs I described here</a>, a compare-mode=polonius run passes all tests now -- but some of them get more errors than they used to (duplicate-ish error reports).</p>



<a name="150844483"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/150844483" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#150844483">(Dec 04 2018 at 13:01)</a>:</h4>
<p>I'll open a PR with the various bug fixes though</p>



<a name="152253251"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152253251" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152253251">(Dec 20 2018 at 12:31)</a>:</h4>
<p>uh-oh</p>



<a name="152253406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152253406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152253406">(Dec 20 2018 at 12:35)</a>:</h4>
<p>so I was trying to implement the illegal subset relations errors</p>



<a name="152253424"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152253424" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152253424">(Dec 20 2018 at 12:36)</a>:</h4>
<p>I think we're going to hit a tiny snag with <span class="emoji emoji-1f438" title="frog">:frog:</span>'s way of ensuring stratification</p>



<a name="152253513"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152253513" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152253513">(Dec 20 2018 at 12:37)</a>:</h4>
<p>that is, the subset errors are to be computed by checking a dynamic Variable (albeit "trivially stratifiable" in theory), while datafrog will in practice only allow antijoins with a static Relation</p>



<a name="152253636"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152253636" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152253636">(Dec 20 2018 at 12:40)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> my WIP branch is <a href="https://github.com/lqd/borrow-check/tree/subterranean_homesick_region" target="_blank" title="https://github.com/lqd/borrow-check/tree/subterranean_homesick_region">here</a> and unless I'm missing something obvious I'm not sure I can compute the subset errors now ?</p>



<a name="152254112"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152254112" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152254112">(Dec 20 2018 at 12:50)</a>:</h4>
<p>when we recently talked about a couple features and APIs datafrog could offer, we also mentioned leapjoins over Variables being nice-to-have-someday. Until now I think we would have only used that for optimization purposes, but now may become a requirement to compute these kinds of errors.</p>



<a name="152264499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152264499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152264499">(Dec 20 2018 at 15:41)</a>:</h4>
<blockquote>
<p>that is, the subset errors are to be computed by checking a dynamic Variable (albeit "trivially stratifiable" in theory), while datafrog will in practice only allow antijoins with a static Relation</p>
</blockquote>
<p>I mean I think the idea would be to make a <code>Relation</code> by calling <code>complete</code></p>



<a name="152264509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152264509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152264509">(Dec 20 2018 at 15:41)</a>:</h4>
<p>however, I plan to change the rules from that post :)</p>



<a name="152264515"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152264515" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152264515">(Dec 20 2018 at 15:41)</a>:</h4>
<p>though they will be similar</p>



<a name="152264520"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152264520" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152264520">(Dec 20 2018 at 15:41)</a>:</h4>
<p>in case you are implementing them :)</p>



<a name="152264525"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152264525" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152264525">(Dec 20 2018 at 15:41)</a>:</h4>
<p>I'll take a look at the branch</p>



<a name="152264910"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152264910" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152264910">(Dec 20 2018 at 15:47)</a>:</h4>
<p>it's true that we could compute the known_subset TC before doing the analysis</p>



<a name="152264925"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152264925" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152264925">(Dec 20 2018 at 15:47)</a>:</h4>
<p>I was indeed implementing them</p>



<a name="152265062"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152265062" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152265062">(Dec 20 2018 at 15:49)</a>:</h4>
<p>I also used to compute the CFG compression table in another pass like this, so it turns out that I <em>did</em> in fact miss something obvious <span class="emoji emoji-1f926" title="face palm">:face_palm:</span></p>



<a name="152265511"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152265511" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152265511">(Dec 20 2018 at 15:55)</a>:</h4>
<p>I was later a bit stuck trying to come up with facts for a text program, I think mostly for the liveness ones -- and using tiny rust examples and -Znll-facts only slightly helped (the "outlives hack" creating facts I didn't yet separate into needed/unneeded, to later encode in a test program)</p>



<a name="152266056"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152266056" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152266056">(Dec 20 2018 at 16:04)</a>:</h4>
<p>(and also it seems the 1) <code>debug_with</code> to use unterned atoms  2) unit testing facts 3) test code deduplication, 4) tidying up the output struct 5) having a way to test inner parts of the computation (the "verbose" data)  -- and so on -- ideas are looking more and more interesting by ~the compute~ the minute)</p>



<a name="152266110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152266110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152266110">(Dec 20 2018 at 16:05)</a>:</h4>
<p>I should maybe make a <code>DebugWith</code> crate -- the impl I was using in Lark is working out "ok", but relies on specialization</p>



<a name="152266354"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152266354" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152266354">(Dec 20 2018 at 16:08)</a>:</h4>
<p>could be interesting, or someone could take that off your plate :)</p>



<a name="152266560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152266560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152266560">(Dec 20 2018 at 16:11)</a>:</h4>
<p>(also 6) renaming everything, eg borrow to loan, universal/free regions to placeholder (IIUC) etc)</p>



<a name="152272461"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152272461" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152272461">(Dec 20 2018 at 17:28)</a>:</h4>
<blockquote>
<p>however, I plan to change the rules from that post :)</p>
</blockquote>
<p>with any luck we'll also be able to use leapjoins for the new ones :) (the current subset error rule is "currently not well-formed" for leapjoins)</p>



<a name="152289358"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152289358" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152289358">(Dec 20 2018 at 21:47)</a>:</h4>
<p>maybe they will be location insensitive, rn I feel we'd have errors at "each point" ? (or, say, more than once per missing lifetime relation; I guess points would be used for diagnostics so some will be useful :)</p>



<a name="152560123"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152560123" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152560123">(Dec 26 2018 at 16:30)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> see also <a href="https://github.com/rust-lang-nursery/datafrog/pull/22" target="_blank" title="https://github.com/rust-lang-nursery/datafrog/pull/22">https://github.com/rust-lang-nursery/datafrog/pull/22</a> :)</p>



<a name="152560777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152560777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152560777">(Dec 26 2018 at 16:47)</a>:</h4>
<p>oh wow :) I'll take a lot in more detail when I'm back in front of a computer but it's looking nice. (Modifying <code>Relation::from</code> to not take an iter + collect into a vec was something I did before as well — but using specialization and before leapjoins, and I wanted to revisit it since closing that PR and leapjoins had been merged, so, yay)</p>



<a name="152598537"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152598537" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152598537">(Dec 27 2018 at 12:05)</a>:</h4>
<p>the ergonomic changes are looking super nice <span class="emoji emoji-1f44d" title="thumbs up">:thumbs_up:</span></p>



<a name="152598605"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152598605" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152598605">(Dec 27 2018 at 12:07)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> I really like this idea of the "tuple per round" dump you were adding -- I'm wondering if we can modify the output to make it more easily analyzed, though. For example, maybe we want to dump into a csv files in the file system, even? Then you could enable it with something like <code>POLONIUS_CSV</code> and analyze rustc</p>



<a name="152598661"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152598661" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152598661">(Dec 27 2018 at 12:09)</a>:</h4>
<p>indeed it would be cool, I was planning on looking into it (thanks for the review comments btw) — have you seen soufflé's profiler btw ? a CSV seems a good idea so I'll look into that.</p>



<a name="152598724"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152598724" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152598724">(Dec 27 2018 at 12:10)</a>:</h4>
<p>(and fix the things the other comments mention — esp I was wondering about the feature flag, whether it's partially useful, or not at all)</p>



<a name="152598811"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152598811" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152598811">(Dec 27 2018 at 12:13)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> also I was wondering <a href="https://gist.github.com/nikomatsakis/6dd99a0126e3f82c64a6d4a6f9989c63#gistcomment-2792941" target="_blank" title="https://gist.github.com/nikomatsakis/6dd99a0126e3f82c64a6d4a6f9989c63#gistcomment-2792941">here</a> if the new rules you mentioned for the "invalid subset errors" were related to "location sensitivity" (that is, if I could rework the rules to remove the <code>Point</code>s or if you had other ideas in mind)</p>



<a name="152598917"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152598917" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152598917">(Dec 27 2018 at 12:16)</a>:</h4>
<blockquote>
<p>(and fix the things the other comments mention — esp I was wondering about the feature flag, whether it's partially useful, or not at all)</p>
</blockquote>
<p>if possible, I would prefer if we can just ensure it has negligible runtime cost when not enabled, vs a feature flag</p>



<a name="152598922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152598922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152598922">(Dec 27 2018 at 12:16)</a>:</h4>
<p>it's always nice when you can just use stuff from nightly builds etc</p>



<a name="152599003"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599003" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599003">(Dec 27 2018 at 12:19)</a>:</h4>
<blockquote>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> also I was wondering <a href="https://gist.github.com/nikomatsakis/6dd99a0126e3f82c64a6d4a6f9989c63#gistcomment-2792941" target="_blank" title="https://gist.github.com/nikomatsakis/6dd99a0126e3f82c64a6d4a6f9989c63#gistcomment-2792941">here</a> if the new rules you mentioned for the "invalid subset errors" were related to "location sensitivity" (that is, if I could rework the rules to remove the <code>Point</code>s or if you had other ideas in mind)</p>
</blockquote>
<p>Ah, no, not really. I might try to finish writing up the modifications I had in mind today -- for the case I described, the rules are more-or-less equivalent, but when you get to higher-ranked relations it is helpful to formulate things a bit differently.</p>
<p>In particular the idea is to introduce a "placeholder loan" for each placeholder region. So instead of</p>
<div class="codehilite"><pre><span></span>placeholder_region(R)
</pre></div>


<p>we have</p>
<div class="codehilite"><pre><span></span>placeholder_region(R, L)
</pre></div>


<p>and then we can compute the <code>requires</code> relation more or less as normal (though I think  we should rename that to <code>contains</code>, <code>element</code>, or <code>member</code>; it is basically the equivalent of <code>L ∈ R</code>), but instead detect errors when we have a loan member we shouldn't have.</p>



<a name="152599063"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599063" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599063">(Dec 27 2018 at 12:21)</a>:</h4>
<p>The reason this is useful is that sometimes you might have a <code>r1 &lt;= r2</code> relation where <code>r1</code> is (say) in U3 and <code>r2</code> in U1. This is basically equivalent to a normal <code>&lt;=</code> relation except that the placeholder loans for U2 and U3 cannot appear in <code>r2</code> -- so if such a loan appears in <code>r1</code> but we can't "promote" them to some other loan that <em>is</em> nameable from U1, it's an error.</p>



<a name="152599068"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599068" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599068">(Dec 27 2018 at 12:21)</a>:</h4>
<p>That said, I think there is no need for "additional location sensitivity", do you?</p>



<a name="152599119"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599119" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599119">(Dec 27 2018 at 12:22)</a>:</h4>
<p>That is, the way I setup the rules, I think it was an error if -- at any point -- there was an invalid subset relation between two placeholder regions, but it was still using the subset relations found at <em>some</em> point (versus the location insensitive rules, which combine all the subsets from all points)</p>



<a name="152599122"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599122" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599122">(Dec 27 2018 at 12:22)</a>:</h4>
<p>or are you just saying it would be nice to have a location insensitive variant to use for "screening" purposes?</p>



<a name="152599129"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599129" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599129">(Dec 27 2018 at 12:22)</a>:</h4>
<p>oh interesting — understood, it will important that I add more example of lifetime relations errors</p>



<a name="152599215"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599215" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599215">(Dec 27 2018 at 12:25)</a>:</h4>
<blockquote>
<p>That said, I think there is no need for "additional location sensitivity", do you?</p>
</blockquote>
<p>I did not per se but wasn't fully aware of the diagnostics requirements we might have in rustc — I was wondering about the opposite, less location sensitivity.<br>
yeah "screening purposes" was more like it, not sure if it'd buy anything like the invalid accesses location insensitivity buy us (albeit our hand was forced) or just less points indicating the "same subset error" for diagnostics</p>



<a name="152599260"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599260" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599260">(Dec 27 2018 at 12:26)</a>:</h4>
<p>I see, well, I hadn't really thought much about diagnostics, I admit</p>



<a name="152599263"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599263" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599263">(Dec 27 2018 at 12:26)</a>:</h4>
<p>I think it might be useful to remember a location where the error occurred (which we currently discard)</p>



<a name="152599264"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599264" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599264">(Dec 27 2018 at 12:26)</a>:</h4>
<p>however</p>



<a name="152599266"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599266" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599266">(Dec 27 2018 at 12:26)</a>:</h4>
<p>the current diagnostics do not have or use that information</p>



<a name="152599267"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599267" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599267">(Dec 27 2018 at 12:26)</a>:</h4>
<p>we only track the invalid subset relation</p>



<a name="152599272"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599272" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599272">(Dec 27 2018 at 12:27)</a>:</h4>
<p>that is, given some <code>r1 &lt;= r2</code> that is not <em>known</em> to be true, we then analyze the subset relations directly</p>



<a name="152599273"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599273" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599273">(Dec 27 2018 at 12:27)</a>:</h4>
<p>to figure out the output</p>



<a name="152599278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599278">(Dec 27 2018 at 12:27)</a>:</h4>
<p>so actually I think the code should mostly "just work"</p>



<a name="152599283"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599283" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599283">(Dec 27 2018 at 12:27)</a>:</h4>
<p>at some point once all this stuff settles down, I would like to revisit our diganostic code,</p>



<a name="152599286"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599286" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599286">(Dec 27 2018 at 12:27)</a>:</h4>
<p>I feel like <em>in principle</em> we should be able to use the same horn-clauses that drive the analysis to also figure out our diagnostics</p>



<a name="152599325"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599325" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599325">(Dec 27 2018 at 12:28)</a>:</h4>
<p>but we'd need to either do causal analysis or enable a top-down evaluation</p>



<a name="152599328"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599328" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599328">(Dec 27 2018 at 12:28)</a>:</h4>
<p>(perhaps of the naive rules)</p>



<a name="152599335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599335">(Dec 27 2018 at 12:28)</a>:</h4>
<p>it'd be nice if we could simplify down to a core set of rules and make things more DRY, particularly if we are able to move more things into those rules...</p>



<a name="152599356"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599356" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599356">(Dec 27 2018 at 12:29)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> shall I merge <a href="https://github.com/rust-lang-nursery/datafrog/pull/22" target="_blank" title="https://github.com/rust-lang-nursery/datafrog/pull/22">https://github.com/rust-lang-nursery/datafrog/pull/22</a> then, you think?</p>



<a name="152599357"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599357" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599357">(Dec 27 2018 at 12:29)</a>:</h4>
<p>agreed</p>



<a name="152599358"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599358" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599358">(Dec 27 2018 at 12:29)</a>:</h4>
<p>afaik it is correct :P</p>



<a name="152599360"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599360" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599360">(Dec 27 2018 at 12:29)</a>:</h4>
<p>yeah I think so :)</p>



<a name="152599411"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599411" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599411">(Dec 27 2018 at 12:30)</a>:</h4>
<p>although I should probably build a modified version of rustc since the polonius self tests don't really cover much</p>



<a name="152599419"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599419" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599419">(Dec 27 2018 at 12:30)</a>:</h4>
<p>speaking of which, did my polonius branch land yet...</p>



<a name="152599421"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599421" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599421">(Dec 27 2018 at 12:30)</a>:</h4>
<p>argh, no</p>



<a name="152599422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599422">(Dec 27 2018 at 12:30)</a>:</h4>
<p>wtf</p>



<a name="152599475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599475">(Dec 27 2018 at 12:32)</a>:</h4>
<p>true — I'll try to improve the polonius self tests over time, building a custom rustc for changes in it or datafrog to make sure they're correct is a bit unfortunate rn</p>



<a name="152599487"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599487" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599487">(Dec 27 2018 at 12:32)</a>:</h4>
<p>dang cargo.lock conflicts</p>



<a name="152599488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599488">(Dec 27 2018 at 12:32)</a>:</h4>
<p>yeah -- we could <em>perhaps</em> use proptest</p>



<a name="152599494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599494">(Dec 27 2018 at 12:33)</a>:</h4>
<p>it's hard to tell though how much coverage that's getting</p>



<a name="152599496"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599496" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599496">(Dec 27 2018 at 12:33)</a>:</h4>
<p>probably better to just move more representative tests over</p>



<a name="152599498"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599498" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599498">(Dec 27 2018 at 12:33)</a>:</h4>
<p>I forget if I did that or not? I think I did <em>some</em> patterns</p>



<a name="152599501"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599501" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599501">(Dec 27 2018 at 12:33)</a>:</h4>
<p>yeah, you added some tricky ones recently</p>



<a name="152599502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599502">(Dec 27 2018 at 12:33)</a>:</h4>
<p>I'd like to make a few more datafrog tests, the proptest setup seemed to work ok</p>



<a name="152599543"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599543" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599543">(Dec 27 2018 at 12:34)</a>:</h4>
<p>but anyway</p>



<a name="152599546"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599546" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599546">(Dec 27 2018 at 12:34)</a>:</h4>
<p>e.g. a test of leapjoin's with more than one combinator etc</p>



<a name="152599549"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599549" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599549">(Dec 27 2018 at 12:34)</a>:</h4>
<p>it seems tractable for datafrog, maybe a bit less so for polonius but would be nice/important</p>



<a name="152599608"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599608" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599608">(Dec 27 2018 at 12:36)</a>:</h4>
<p>(that is, the piece of code to generate a random set of valid facts seemed not immediately obvious but maybe it's not that hard)</p>



<a name="152599784"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599784" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599784">(Dec 27 2018 at 12:42)</a>:</h4>
<blockquote>
<p>it seems tractable for datafrog, maybe a bit less so for polonius but would be nice/important</p>
</blockquote>
<p>yes -- I mean we can generate random facts, but it's not clear that those facts are "realistic" in any particularly useful way</p>



<a name="152599853"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152599853" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152599853">(Dec 27 2018 at 12:44)</a>:</h4>
<p>right</p>



<a name="152605323"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605323" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605323">(Dec 27 2018 at 15:03)</a>:</h4>
<p>hmm <span class="user-mention" data-user-id="116113">@lqd</span> so I did that run with the new datafrog -- interestingly, it came up with <em>fewer</em> "compare-mode failures" than before. There used to be 22, now there were 11. But each of those 11 were previously present. (I went over all the failures at some point and found that they were all legit) I'm not sure why it's behaving differently, might be owing to the rebase.</p>



<a name="152605366"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605366" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605366">(Dec 27 2018 at 15:04)</a>:</h4>
<p>I'm now re-running the rebased version of my branch but without the datafrog 2.0 changes</p>



<a name="152605371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605371">(Dec 27 2018 at 15:04)</a>:</h4>
<p>it was mostly stuff like we used to report duplicate errors with polonius enabled but don't know</p>



<a name="152605376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605376">(Dec 27 2018 at 15:04)</a>:</h4>
<p>doesn't seem <em>bad</em> but I don't know the cause</p>



<a name="152605386"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605386" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605386">(Dec 27 2018 at 15:04)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> for the <code>Option&lt;Tuple&gt;</code> I was thinking of something like</p>
<div class="codehilite"><pre><span></span><span class="k">fn</span> <span class="nf">from_filterable_join</span><span class="o">&lt;</span><span class="n">K</span>: <span class="nb">Ord</span><span class="p">,</span><span class="w"> </span><span class="n">V1</span>: <span class="nb">Ord</span><span class="p">,</span><span class="w"> </span><span class="n">V2</span>: <span class="nb">Ord</span><span class="o">&gt;</span><span class="p">(</span><span class="w"></span>
<span class="w">        </span><span class="o">&amp;</span><span class="bp">self</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="n">input1</span>: <span class="kp">&amp;</span><span class="nc">Variable</span><span class="o">&lt;</span><span class="p">(</span><span class="n">K</span><span class="p">,</span><span class="w"> </span><span class="n">V1</span><span class="p">)</span><span class="o">&gt;</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="n">input2</span>: <span class="kp">&amp;</span><span class="nc">Variable</span><span class="o">&lt;</span><span class="p">(</span><span class="n">K</span><span class="p">,</span><span class="w"> </span><span class="n">V2</span><span class="p">)</span><span class="o">&gt;</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="n">logic</span>: <span class="nc">impl</span><span class="w"> </span><span class="nb">FnMut</span><span class="p">(</span><span class="o">&amp;</span><span class="n">K</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">V1</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">V2</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nb">Option</span><span class="o">&lt;</span><span class="n">Tuple</span><span class="o">&gt;</span><span class="p">,</span><span class="w"></span>
<span class="w">    </span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="n">join</span>::<span class="n">filterable_join_into</span><span class="p">(</span><span class="n">input1</span><span class="p">,</span><span class="w"> </span><span class="n">input2</span><span class="p">,</span><span class="w"> </span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">logic</span><span class="p">)</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>


<p>where <code>filterable_join_into</code> would only add the tuple to the results, if <code>logic</code> would return a Some.</p>
<p>in my mind it would allow to filter the cases where we would see symmetries in Polonius but I could be very mistaken :/</p>



<a name="152605391"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605391" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605391">(Dec 27 2018 at 15:04)</a>:</h4>
<p>ah, yeah, I wondered about that</p>



<a name="152605401"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605401" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605401">(Dec 27 2018 at 15:05)</a>:</h4>
<p>that would be less efficient than the <code>PrefixFilter</code></p>



<a name="152605407"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605407" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605407">(Dec 27 2018 at 15:05)</a>:</h4>
<p>but roughly equivalent to the <code>ValueFilter</code>, I think</p>



<a name="152605410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605410">(Dec 27 2018 at 15:05)</a>:</h4>
<p>still, I think it's not worth it because it seems to impose a kind of ergonomic hit on all other uses</p>



<a name="152605457"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605457" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605457">(Dec 27 2018 at 15:06)</a>:</h4>
<p>in any case it was mostly a thought about these symmetries and the other PRs (while we were talking about API changes), nothing to prevent the PR from landing or anything</p>



<a name="152605461"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605461" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605461">(Dec 27 2018 at 15:06)</a>:</h4>
<p>(i.e., we have to add <code>Some</code> everywhere)</p>



<a name="152605470"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605470" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605470">(Dec 27 2018 at 15:06)</a>:</h4>
<p>it does feel though like there is some kind of "gap" opening up between the leapjoin and join stuff</p>



<a name="152605477"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605477" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605477">(Dec 27 2018 at 15:07)</a>:</h4>
<p>was the run with your new unlanded Polonius fixes btw ?</p>



<a name="152605481"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605481" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605481">(Dec 27 2018 at 15:07)</a>:</h4>
<p>yes</p>



<a name="152605490"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605490" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605490">(Dec 27 2018 at 15:07)</a>:</h4>
<p>reason I ask is:</p>



<a name="152605509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605509">(Dec 27 2018 at 15:07)</a>:</h4>
<blockquote>
<p>it does feel though like there is some kind of "gap" opening up between the leapjoin and join stuff</p>
</blockquote>
<p>makes me wonder if there is some unified API waiting to be discovered</p>



<a name="152605562"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605562" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605562">(Dec 27 2018 at 15:08)</a>:</h4>
<p>IIRC it was using polonius engine 0.6, and we fixed the Naive variant producing errors in 0.6.1 so I wondered if compare-mode wouldn't produce more failures than there was for real</p>



<a name="152605598"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605598" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605598">(Dec 27 2018 at 15:09)</a>:</h4>
<blockquote>
<p>it does feel though like there is some kind of "gap" opening up between the leapjoin and join stuff</p>
</blockquote>
<p>interesting thought <span class="emoji emoji-1f914" title="thinking">:thinking:</span> — in the meantime, the new convenience APIs will at least allow to pick and choose for all the different cases we might need to support</p>



<a name="152605605"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605605" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605605">(Dec 27 2018 at 15:09)</a>:</h4>
<p>yeah</p>



<a name="152605607"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605607" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605607">(Dec 27 2018 at 15:10)</a>:</h4>
<p>it's ok, we can do 3.0 :)</p>



<a name="152605648"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605648" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605648">(Dec 27 2018 at 15:10)</a>:</h4>
<p>major versions are free, I hear</p>



<a name="152605734"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605734" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605734">(Dec 27 2018 at 15:12)</a>:</h4>
<p><span class="emoji emoji-263a" title="smile">:smile:</span></p>



<a name="152605786"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605786" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605786">(Dec 27 2018 at 15:13)</a>:</h4>
<p>mostly it feels like there is some sort of "combinator"</p>



<a name="152605790"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605790" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605790">(Dec 27 2018 at 15:13)</a>:</h4>
<p>that we haven't <em>quite</em> figured out</p>



<a name="152605836"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605836" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605836">(Dec 27 2018 at 15:14)</a>:</h4>
<p>maybe it's just the differential API :)</p>



<a name="152605944"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152605944" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152605944">(Dec 27 2018 at 15:16)</a>:</h4>
<p>probably :)</p>



<a name="152607175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152607175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152607175">(Dec 27 2018 at 15:44)</a>:</h4>
<p>did you want another rustc test run after rebasing over the Prefix/Value filters ? (or maybe using polonius-engine 0.6.1 if that was a source of additional or missed errors in compare-mode), in any case merge at your leisure :)</p>



<a name="152607767"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152607767" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152607767">(Dec 27 2018 at 15:58)</a>:</h4>
<p>nah, I don't see how that could introduce bugs</p>



<a name="152607791"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152607791" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152607791">(Dec 27 2018 at 15:59)</a>:</h4>
<p>btw <span class="user-mention" data-user-id="116113">@lqd</span> I updated <a href="https://gist.github.com/nikomatsakis/6dd99a0126e3f82c64a6d4a6f9989c63#file-subregion-md" target="_blank" title="https://gist.github.com/nikomatsakis/6dd99a0126e3f82c64a6d4a6f9989c63#file-subregion-md">the subregion blog post</a> to the newer formulation, though I've yet to write the sequel, so I may yet tweak it a bit more :)</p>



<a name="152607816"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152607816" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152607816">(Dec 27 2018 at 15:59)</a>:</h4>
<p><span class="emoji emoji-1f6a2" title="ship">:ship:</span> it (maybe accept the "reuslting" typo fix)</p>



<a name="152607887"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152607887" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152607887">(Dec 27 2018 at 16:00)</a>:</h4>
<p>:)</p>



<a name="152607888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152607888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152607888">(Dec 27 2018 at 16:00)</a>:</h4>
<p>yep</p>



<a name="152607905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152607905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152607905">(Dec 27 2018 at 16:00)</a>:</h4>
<blockquote>
<p>nah, I don't see how that could introduce bugs</p>
</blockquote>
<p>famous last words if ever I heard them but wev :)</p>



<a name="152607988"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152607988" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152607988">(Dec 27 2018 at 16:02)</a>:</h4>
<blockquote>
<p>I updated <a href="https://gist.github.com/nikomatsakis/6dd99a0126e3f82c64a6d4a6f9989c63#file-subregion-md" target="_blank" title="https://gist.github.com/nikomatsakis/6dd99a0126e3f82c64a6d4a6f9989c63#file-subregion-md">the subregion blog post</a></p>
</blockquote>
<p>awesome, I'll update the WIP branch soon, and if we need to tweak it a bit later, we'll tweak it later :)</p>



<a name="152608006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152608006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152608006">(Dec 27 2018 at 16:02)</a>:</h4>
<p>(and also, thanks)</p>



<a name="152608472"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152608472" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152608472">(Dec 27 2018 at 16:12)</a>:</h4>
<p><a href="https://github.com/rust-lang-nursery/datafrog/pull/23" target="_blank" title="https://github.com/rust-lang-nursery/datafrog/pull/23">https://github.com/rust-lang-nursery/datafrog/pull/23</a></p>



<a name="152608770"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152608770" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152608770">(Dec 27 2018 at 16:19)</a>:</h4>
<p>released: <a href="https://github.com/rust-lang-nursery/polonius/pull/95/" target="_blank" title="https://github.com/rust-lang-nursery/polonius/pull/95/">https://github.com/rust-lang-nursery/polonius/pull/95/</a></p>



<a name="152608969"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152608969" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152608969">(Dec 27 2018 at 16:24)</a>:</h4>
<p>bors is stubbornly absent :)</p>



<a name="152609376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152609376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152609376">(Dec 27 2018 at 16:34)</a>:</h4>
<p>(r+ed)</p>



<a name="152612142"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152612142" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152612142">(Dec 27 2018 at 17:43)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span>  are you going to add this to <a href="https://github.com/rust-lang/rust/issues/56507" target="_blank" title="https://github.com/rust-lang/rust/issues/56507">#56507</a>, or can it be r+'d again now?</p>



<a name="152613004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152613004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152613004">(Dec 27 2018 at 18:03)</a>:</h4>
<p>(datafrog's changes were mostly ergonomic, + the odd possible optimization, so maybe unlikely to be integrated into that PR ?)</p>



<a name="152613103"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152613103" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152613103">(Dec 27 2018 at 18:05)</a>:</h4>
<p>(hmm, then again niko seems to be close to publishing polonius 0.6.2 so maybe :p — whichever of this and <a href="https://github.com/rust-lang/rust/issues/56384" target="_blank" title="https://github.com/rust-lang/rust/issues/56384">#56384</a> lands first will probably require the other to rebase anyway)</p>



<a name="152625372"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152625372" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152625372">(Dec 27 2018 at 23:04)</a>:</h4>
<p>oh wow, higher-ranked relations require <code>contains(R, L, P) :- placeholder_region(R, L), cfg_node(P).</code> <em>mind explodes</em> — I thought these new errors could be more or less easily added to the existing variants but, alas, it seems I was wrong :)</p>



<a name="152654685"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152654685" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152654685">(Dec 28 2018 at 13:52)</a>:</h4>
<p>I'm actually not entirely sure what higher-ranked regions will require. I have to think it over more. I <em>thought</em> I saw a "path" but I realized a few potential complications yesterday.</p>



<a name="152654690"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152654690" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152654690">(Dec 28 2018 at 13:52)</a>:</h4>
<blockquote>
<p>are you going to add this to <a href="https://github.com/rust-lang/rust/issues/56507" target="_blank" title="https://github.com/rust-lang/rust/issues/56507">#56507</a>, or can it be r+'d again now?</p>
</blockquote>
<p>added, rebased, r+'d, looks like it may even land for once =)</p>



<a name="152655467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152655467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152655467">(Dec 28 2018 at 14:11)</a>:</h4>
<p>after seeing the effects of compression, anything joining to the full CFG is a tad scary at times :)</p>



<a name="152657924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152657924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152657924">(Dec 28 2018 at 15:17)</a>:</h4>
<p>yeah, I'd like to eliminate that join</p>



<a name="152657928"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152657928" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152657928">(Dec 28 2018 at 15:17)</a>:</h4>
<p>note that we do it today in rust code though</p>



<a name="152657968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152657968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152657968">(Dec 28 2018 at 15:18)</a>:</h4>
<p>I think it can probably be eliminated, but it might complicate things</p>



<a name="152658057"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152658057" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152658057">(Dec 28 2018 at 15:20)</a>:</h4>
<p>btw <span class="user-mention" data-user-id="116113">@lqd</span> I extended <a href="https://github.com/rust-lang-nursery/polonius/pull/96" target="_blank" title="https://github.com/rust-lang-nursery/polonius/pull/96">https://github.com/rust-lang-nursery/polonius/pull/96</a></p>



<a name="152658066"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152658066" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152658066">(Dec 28 2018 at 15:21)</a>:</h4>
<p>awesome!</p>



<a name="152658121"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152658121" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152658121">(Dec 28 2018 at 15:22)</a>:</h4>
<p>thankfully it didn't uncover bugs :)</p>



<a name="152658198"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152658198" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152658198">(Dec 28 2018 at 15:24)</a>:</h4>
<p>I guess the comment could mention that it properly checks subsets now and not just the lack of errors but that would be nitpicking</p>



<a name="152658658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152658658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152658658">(Dec 28 2018 at 15:38)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> oh you did change it ;) sorry I noticed after you merged: in the first panic, aren't the first loan and point arguments reversed:  "for {point} at {loan}" ?</p>



<a name="152658663"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152658663" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152658663">(Dec 28 2018 at 15:38)</a>:</h4>
<p>I changed it after I saw your comment :)</p>



<a name="152658668"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152658668" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152658668">(Dec 28 2018 at 15:39)</a>:</h4>
<p>regarding the debug message, probably...</p>



<a name="152658671"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152658671" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152658671">(Dec 28 2018 at 15:39)</a>:</h4>
<p>no big deal as it won't trigger don't worry about it I'll open a PR :)</p>



<a name="152658677"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152658677" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152658677">(Dec 28 2018 at 15:39)</a>:</h4>
<p>ok :)</p>



<a name="152658679"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152658679" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152658679">(Dec 28 2018 at 15:39)</a>:</h4>
<p>ty</p>



<a name="152658680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152658680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152658680">(Dec 28 2018 at 15:39)</a>:</h4>
<p>np</p>



<a name="152659373"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152659373" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152659373">(Dec 28 2018 at 15:56)</a>:</h4>
<p>(done)</p>



<a name="152663957"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152663957" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152663957">(Dec 28 2018 at 17:41)</a>:</h4>
<blockquote>
<p>looks like it may even land for once =)</p>
</blockquote>
<p>[narrator] <a href="https://github.com/rust-lang/rust/pull/56507#issuecomment-450373979" target="_blank" title="https://github.com/rust-lang/rust/pull/56507#issuecomment-450373979">it didn't</a> :(</p>



<a name="152664000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152664000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152664000">(Dec 28 2018 at 17:42)</a>:</h4>
<p>another panic trying to document rustc_codegen_llvm, no backtrace, and the option it complains about seems to exist</p>



<a name="152664158"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152664158" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152664158">(Dec 28 2018 at 17:46)</a>:</h4>
<p>I'll ask infra in case they've seen it elsewhere, if it's spurious or anything</p>



<a name="152666723"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152666723" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152666723">(Dec 28 2018 at 18:46)</a>:</h4>
<p>I think I found the vague origin of the failure, and am currently investigating to pinpoint it a bit more</p>



<a name="152669383"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152669383" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152669383">(Dec 28 2018 at 19:43)</a>:</h4>
<p>(so it's a rustdoc ICE trying to document datafrog, the great simulacrum bisected it to commits close to the leapjoin API additions; I'm trying to minimize these changes so that the rustdoc team can look at it more easily)</p>



<a name="152671953"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152671953" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152671953">(Dec 28 2018 at 20:37)</a>:</h4>
<p>(update: I've minimized it and will open a rust issue, I think I have a workaround/fix in the meantime)</p>



<a name="152677384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/152677384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#152677384">(Dec 28 2018 at 22:55)</a>:</h4>
<p>(another parenthesis and another update: <span class="user-mention" data-user-id="116009">@nikomatsakis</span> <a href="https://github.com/rust-lang/rust/issues/56507" target="_blank" title="https://github.com/rust-lang/rust/issues/56507">#56507</a> is hitting a "rustdoc issue" which I've minimized to <a href="https://github.com/rust-lang/rust/issues/57180" target="_blank" title="https://github.com/rust-lang/rust/issues/57180">#57180</a> and worked around/fixed in <a href="https://github.com/rust-lang-nursery/datafrog/pull/24" target="_blank" title="https://github.com/rust-lang-nursery/datafrog/pull/24">datafrog</a> — once merged, and another <span class="emoji emoji-1f438" title="frog">:frog:</span> version is published into another published version of polonius, and this PR using the latter THEN your PR will land <em>famous last words</em> :)</p>



<a name="154195660"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154195660" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154195660">(Jan 02 2019 at 19:34)</a>:</h4>
<p>wow, awesome <span class="user-mention" data-user-id="116113">@lqd</span>, thanks!</p>



<a name="154195787"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154195787" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154195787">(Jan 02 2019 at 19:36)</a>:</h4>
<p>ps <span class="user-mention" data-user-id="116113">@lqd</span> I think I will close <a href="https://github.com/rust-lang-nursery/datafrog/pull/19" target="_blank" title="https://github.com/rust-lang-nursery/datafrog/pull/19">https://github.com/rust-lang-nursery/datafrog/pull/19</a>, given that it didn't seem to make things any faster, and it makes the datafrog code that much more complex and less uniform.</p>



<a name="154195897"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154195897" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154195897">(Jan 02 2019 at 19:38)</a>:</h4>
<p>oh, was it about speed ? I didn't look at it myself so I was expecting it to be about "less copying"</p>



<a name="154195928"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154195928" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154195928">(Jan 02 2019 at 19:38)</a>:</h4>
<p>well the idea was to pass around <code>u32</code> values and not <code>&amp;u32</code> values</p>



<a name="154195932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154195932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154195932">(Jan 02 2019 at 19:38)</a>:</h4>
<p>given that the former is smaller</p>



<a name="154195943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154195943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154195943">(Jan 02 2019 at 19:39)</a>:</h4>
<p>idk, maybe i'll leave it open and re-explore in a bit. it would be nice to be a bit less pointer-centric</p>



<a name="154195944"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154195944" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154195944">(Jan 02 2019 at 19:39)</a>:</h4>
<p>(and/or possible Variable in leapjoins)</p>



<a name="154195949"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154195949" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154195949">(Jan 02 2019 at 19:39)</a>:</h4>
<p>but basically yes it's all a perf optimization</p>



<a name="154195951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154195951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154195951">(Jan 02 2019 at 19:39)</a>:</h4>
<p>in the end</p>



<a name="154196037"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154196037" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154196037">(Jan 02 2019 at 19:40)</a>:</h4>
<p>oh ok, it would have been cool !</p>



<a name="154196150"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154196150" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154196150">(Jan 02 2019 at 19:42)</a>:</h4>
<p>datafrog v2.0.1 published</p>



<a name="154196191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154196191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154196191">(Jan 02 2019 at 19:43)</a>:</h4>
<p>I am debating now -- I can presumably update my PR to just add a <code>datafrog = 2.0.1</code> dependency into rustc</p>



<a name="154196198"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154196198" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154196198">(Jan 02 2019 at 19:43)</a>:</h4>
<p>seems like a lot of trouble to re-issue a new version of <code>polonius-engine</code></p>



<a name="154196244"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154196244" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154196244">(Jan 02 2019 at 19:44)</a>:</h4>
<p>I could also just update the cargo lock file I guess but that feels..sketchy to me..?</p>



<a name="154196258"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154196258" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154196258">(Jan 02 2019 at 19:44)</a>:</h4>
<p>not sure why</p>



<a name="154196284"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154196284" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154196284">(Jan 02 2019 at 19:44)</a>:</h4>
<p>ah, well, just rebasing already did the job</p>



<a name="154196302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154196302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154196302">(Jan 02 2019 at 19:45)</a>:</h4>
<p>i.e., regenerating the cargo lock gave me datafrog 2.0.1</p>



<a name="154196304"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154196304" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154196304">(Jan 02 2019 at 19:45)</a>:</h4>
<p>I'll leave it at that :)</p>



<a name="154196325"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/polonius/near/154196325" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/polonius.html#154196325">(Jan 02 2019 at 19:45)</a>:</h4>
<p>haha nice</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>